#ifndef _AWUI_EMULATION_PROCESSORS_Z80_OPCODE_H
#define _AWUI_EMULATION_PROCESSORS_Z80_OPCODE_H

#include <stdint.h>

namespace awui {
	namespace Emulation {
		namespace Processors {
			namespace Z80 {
				enum {
					Ox00 = 0,
					Ox01,
					Ox02,
					Ox03,
					Ox04,
					Ox05,
					Ox06,
					Ox07,
					Ox08,
					Ox09,
					Ox0A,
					Ox0B,
					Ox0C,
					Ox0D,
					Ox0E,
					Ox0F,
					Ox10,
					Ox11,
					Ox12,
					Ox13,
					Ox14,
					Ox15,
					Ox16,
					Ox17,
					Ox18,
					Ox19,
					Ox1A,
					Ox1B,
					Ox1C,
					Ox1D,
					Ox1E,
					Ox1F,
					Ox20,
					Ox21,
					Ox22,
					Ox23,
					Ox24,
					Ox25,
					Ox26,
					Ox27,
					Ox28,
					Ox29,
					Ox2A,
					Ox2B,
					Ox2C,
					Ox2D,
					Ox2E,
					Ox2F,
					Ox30,
					Ox31,
					Ox32,
					Ox33,
					Ox34,
					Ox35,
					Ox36,
					Ox37,
					Ox38,
					Ox39,
					Ox3A,
					Ox3B,
					Ox3C,
					Ox3D,
					Ox3E,
					Ox3F,
					Ox40,
					Ox41,
					Ox42,
					Ox43,
					Ox44,
					Ox45,
					Ox46,
					Ox47,
					Ox48,
					Ox49,
					Ox4A,
					Ox4B,
					Ox4C,
					Ox4D,
					Ox4E,
					Ox4F,
					Ox50,
					Ox51,
					Ox52,
					Ox53,
					Ox54,
					Ox55,
					Ox56,
					Ox57,
					Ox58,
					Ox59,
					Ox5A,
					Ox5B,
					Ox5C,
					Ox5D,
					Ox5E,
					Ox5F,
					Ox60,
					Ox61,
					Ox62,
					Ox63,
					Ox64,
					Ox65,
					Ox66,
					Ox67,
					Ox68,
					Ox69,
					Ox6A,
					Ox6B,
					Ox6C,
					Ox6D,
					Ox6E,
					Ox6F,
					Ox70,
					Ox71,
					Ox72,
					Ox73,
					Ox74,
					Ox75,
					Ox76,
					Ox77,
					Ox78,
					Ox79,
					Ox7A,
					Ox7B,
					Ox7C,
					Ox7D,
					Ox7E,
					Ox7F,
					Ox80,
					Ox81,
					Ox82,
					Ox83,
					Ox84,
					Ox85,
					Ox86,
					Ox87,
					Ox88,
					Ox89,
					Ox8A,
					Ox8B,
					Ox8C,
					Ox8D,
					Ox8E,
					Ox8F,
					Ox90,
					Ox91,
					Ox92,
					Ox93,
					Ox94,
					Ox95,
					Ox96,
					Ox97,
					Ox98,
					Ox99,
					Ox9A,
					Ox9B,
					Ox9C,
					Ox9D,
					Ox9E,
					Ox9F,
					OxA0,
					OxA1,
					OxA2,
					OxA3,
					OxA4,
					OxA5,
					OxA6,
					OxA7,
					OxA8,
					OxA9,
					OxAA,
					OxAB,
					OxAC,
					OxAD,
					OxAE,
					OxAF,
					OxB0,
					OxB1,
					OxB2,
					OxB3,
					OxB4,
					OxB5,
					OxB6,
					OxB7,
					OxB8,
					OxB9,
					OxBA,
					OxBB,
					OxBC,
					OxBD,
					OxBE,
					OxBF,
					OxC0,
					OxC1,
					OxC2,
					OxC3,
					OxC4,
					OxC5,
					OxC6,
					OxC7,
					OxC8,
					OxC9,
					OxCA,
					OxCB00,
					OxCB01,
					OxCB02,
					OxCB03,
					OxCB04,
					OxCB05,
					OxCB06,
					OxCB07,
					OxCB08,
					OxCB09,
					OxCB0A,
					OxCB0B,
					OxCB0C,
					OxCB0D,
					OxCB0E,
					OxCB0F,
					OxCB10,
					OxCB11,
					OxCB12,
					OxCB13,
					OxCB14,
					OxCB15,
					OxCB16,
					OxCB17,
					OxCB18,
					OxCB19,
					OxCB1A,
					OxCB1B,
					OxCB1C,
					OxCB1D,
					OxCB1E,
					OxCB1F,
					OxCB20,
					OxCB21,
					OxCB22,
					OxCB23,
					OxCB24,
					OxCB25,
					OxCB26,
					OxCB27,
					OxCB28,
					OxCB29,
					OxCB2A,
					OxCB2B,
					OxCB2C,
					OxCB2D,
					OxCB2E,
					OxCB2F,
					OxCB30,
					OxCB31,
					OxCB32,
					OxCB33,
					OxCB34,
					OxCB35,
					OxCB36,
					OxCB37,
					OxCB38,
					OxCB39,
					OxCB3A,
					OxCB3B,
					OxCB3C,
					OxCB3D,
					OxCB3E,
					OxCB3F,
					OxCB40,
					OxCB41,
					OxCB42,
					OxCB43,
					OxCB44,
					OxCB45,
					OxCB46,
					OxCB47,
					OxCB48,
					OxCB49,
					OxCB4A,
					OxCB4B,
					OxCB4C,
					OxCB4D,
					OxCB4E,
					OxCB4F,
					OxCB50,
					OxCB51,
					OxCB52,
					OxCB53,
					OxCB54,
					OxCB55,
					OxCB56,
					OxCB57,
					OxCB58,
					OxCB59,
					OxCB5A,
					OxCB5B,
					OxCB5C,
					OxCB5D,
					OxCB5E,
					OxCB5F,
					OxCB60,
					OxCB61,
					OxCB62,
					OxCB63,
					OxCB64,
					OxCB65,
					OxCB66,
					OxCB67,
					OxCB68,
					OxCB69,
					OxCB6A,
					OxCB6B,
					OxCB6C,
					OxCB6D,
					OxCB6E,
					OxCB6F,
					OxCB70,
					OxCB71,
					OxCB72,
					OxCB73,
					OxCB74,
					OxCB75,
					OxCB76,
					OxCB77,
					OxCB78,
					OxCB79,
					OxCB7A,
					OxCB7B,
					OxCB7C,
					OxCB7D,
					OxCB7E,
					OxCB7F,
					OxCB80,
					OxCB81,
					OxCB82,
					OxCB83,
					OxCB84,
					OxCB85,
					OxCB86,
					OxCB87,
					OxCB88,
					OxCB89,
					OxCB8A,
					OxCB8B,
					OxCB8C,
					OxCB8D,
					OxCB8E,
					OxCB8F,
					OxCB90,
					OxCB91,
					OxCB92,
					OxCB93,
					OxCB94,
					OxCB95,
					OxCB96,
					OxCB97,
					OxCB98,
					OxCB99,
					OxCB9A,
					OxCB9B,
					OxCB9C,
					OxCB9D,
					OxCB9E,
					OxCB9F,
					OxCBA0,
					OxCBA1,
					OxCBA2,
					OxCBA3,
					OxCBA4,
					OxCBA5,
					OxCBA6,
					OxCBA7,
					OxCBA8,
					OxCBA9,
					OxCBAA,
					OxCBAB,
					OxCBAC,
					OxCBAD,
					OxCBAE,
					OxCBAF,
					OxCBB0,
					OxCBB1,
					OxCBB2,
					OxCBB3,
					OxCBB4,
					OxCBB5,
					OxCBB6,
					OxCBB7,
					OxCBB8,
					OxCBB9,
					OxCBBA,
					OxCBBB,
					OxCBBC,
					OxCBBD,
					OxCBBE,
					OxCBBF,
					OxCBC0,
					OxCBC1,
					OxCBC2,
					OxCBC3,
					OxCBC4,
					OxCBC5,
					OxCBC6,
					OxCBC7,
					OxCBC8,
					OxCBC9,
					OxCBCA,
					OxCBCB,
					OxCBCC,
					OxCBCD,
					OxCBCE,
					OxCBCF,
					OxCBD0,
					OxCBD1,
					OxCBD2,
					OxCBD3,
					OxCBD4,
					OxCBD5,
					OxCBD6,
					OxCBD7,
					OxCBD8,
					OxCBD9,
					OxCBDA,
					OxCBDB,
					OxCBDC,
					OxCBDD,
					OxCBDE,
					OxCBDF,
					OxCBE0,
					OxCBE1,
					OxCBE2,
					OxCBE3,
					OxCBE4,
					OxCBE5,
					OxCBE6,
					OxCBE7,
					OxCBE8,
					OxCBE9,
					OxCBEA,
					OxCBEB,
					OxCBEC,
					OxCBED,
					OxCBEE,
					OxCBEF,
					OxCBF0,
					OxCBF1,
					OxCBF2,
					OxCBF3,
					OxCBF4,
					OxCBF5,
					OxCBF6,
					OxCBF7,
					OxCBF8,
					OxCBF9,
					OxCBFA,
					OxCBFB,
					OxCBFC,
					OxCBFD,
					OxCBFE,
					OxCBFF,
					OxCC,
					OxCD,
					OxCE,
					OxCF,
					OxD0,
					OxD1,
					OxD2,
					OxD3,
					OxD4,
					OxD5,
					OxD6,
					OxD7,
					OxD8,
					OxD9,
					OxDA,
					OxDB,
					OxDC,
					OxDD09,
					OxDD19,
					OxDD21,
					OxDD22,
					OxDD23,
					OxDD24,
					OxDD25,
					OxDD26,
					OxDD29,
					OxDD2A,
					OxDD2B,
					OxDD2C,
					OxDD2D,
					OxDD2E,
					OxDD34,
					OxDD35,
					OxDD36,
					OxDD39,
					OxDD44,
					OxDD45,
					OxDD46,
					OxDD4C,
					OxDD4D,
					OxDD4E,
					OxDD54,
					OxDD55,
					OxDD56,
					OxDD5C,
					OxDD5D,
					OxDD5E,
					OxDD60,
					OxDD61,
					OxDD62,
					OxDD63,
					OxDD64,
					OxDD65,
					OxDD66,
					OxDD67,
					OxDD68,
					OxDD69,
					OxDD6A,
					OxDD6B,
					OxDD6C,
					OxDD6D,
					OxDD6E,
					OxDD6F,
					OxDD70,
					OxDD71,
					OxDD72,
					OxDD73,
					OxDD74,
					OxDD75,
					OxDD77,
					OxDD7C,
					OxDD7D,
					OxDD7E,
					OxDD84,
					OxDD85,
					OxDD86,
					OxDD8C,
					OxDD8D,
					OxDD8E,
					OxDD94,
					OxDD95,
					OxDD96,
					OxDD9C,
					OxDD9D,
					OxDD9E,
					OxDDA4,
					OxDDA5,
					OxDDA6,
					OxDDAC,
					OxDDAD,
					OxDDAE,
					OxDDB4,
					OxDDB5,
					OxDDB6,
					OxDDBC,
					OxDDBD,
					OxDDBE,
					OxDDCBnn00,
					OxDDCBnn01,
					OxDDCBnn02,
					OxDDCBnn03,
					OxDDCBnn04,
					OxDDCBnn05,
					OxDDCBnn06,
					OxDDCBnn07,
					OxDDCBnn08,
					OxDDCBnn09,
					OxDDCBnn0A,
					OxDDCBnn0B,
					OxDDCBnn0C,
					OxDDCBnn0D,
					OxDDCBnn0E,
					OxDDCBnn0F,
					OxDDCBnn10,
					OxDDCBnn11,
					OxDDCBnn12,
					OxDDCBnn13,
					OxDDCBnn14,
					OxDDCBnn15,
					OxDDCBnn16,
					OxDDCBnn17,
					OxDDCBnn18,
					OxDDCBnn19,
					OxDDCBnn1A,
					OxDDCBnn1B,
					OxDDCBnn1C,
					OxDDCBnn1D,
					OxDDCBnn1E,
					OxDDCBnn1F,
					OxDDCBnn20,
					OxDDCBnn21,
					OxDDCBnn22,
					OxDDCBnn23,
					OxDDCBnn24,
					OxDDCBnn25,
					OxDDCBnn26,
					OxDDCBnn27,
					OxDDCBnn28,
					OxDDCBnn29,
					OxDDCBnn2A,
					OxDDCBnn2B,
					OxDDCBnn2C,
					OxDDCBnn2D,
					OxDDCBnn2E,
					OxDDCBnn2F,
					OxDDCBnn30,
					OxDDCBnn31,
					OxDDCBnn32,
					OxDDCBnn33,
					OxDDCBnn34,
					OxDDCBnn35,
					OxDDCBnn36,
					OxDDCBnn37,
					OxDDCBnn38,
					OxDDCBnn39,
					OxDDCBnn3A,
					OxDDCBnn3B,
					OxDDCBnn3C,
					OxDDCBnn3D,
					OxDDCBnn3E,
					OxDDCBnn3F,
					OxDDCBnn40,
					OxDDCBnn41,
					OxDDCBnn42,
					OxDDCBnn43,
					OxDDCBnn44,
					OxDDCBnn45,
					OxDDCBnn46,
					OxDDCBnn47,
					OxDDCBnn48,
					OxDDCBnn49,
					OxDDCBnn4A,
					OxDDCBnn4B,
					OxDDCBnn4C,
					OxDDCBnn4D,
					OxDDCBnn4E,
					OxDDCBnn4F,
					OxDDCBnn50,
					OxDDCBnn51,
					OxDDCBnn52,
					OxDDCBnn53,
					OxDDCBnn54,
					OxDDCBnn55,
					OxDDCBnn56,
					OxDDCBnn57,
					OxDDCBnn58,
					OxDDCBnn59,
					OxDDCBnn5A,
					OxDDCBnn5B,
					OxDDCBnn5C,
					OxDDCBnn5D,
					OxDDCBnn5E,
					OxDDCBnn5F,
					OxDDCBnn60,
					OxDDCBnn61,
					OxDDCBnn62,
					OxDDCBnn63,
					OxDDCBnn64,
					OxDDCBnn65,
					OxDDCBnn66,
					OxDDCBnn67,
					OxDDCBnn68,
					OxDDCBnn69,
					OxDDCBnn6A,
					OxDDCBnn6B,
					OxDDCBnn6C,
					OxDDCBnn6D,
					OxDDCBnn6E,
					OxDDCBnn6F,
					OxDDCBnn70,
					OxDDCBnn71,
					OxDDCBnn72,
					OxDDCBnn73,
					OxDDCBnn74,
					OxDDCBnn75,
					OxDDCBnn76,
					OxDDCBnn77,
					OxDDCBnn78,
					OxDDCBnn79,
					OxDDCBnn7A,
					OxDDCBnn7B,
					OxDDCBnn7C,
					OxDDCBnn7D,
					OxDDCBnn7E,
					OxDDCBnn7F,
					OxDDCBnn80,
					OxDDCBnn81,
					OxDDCBnn82,
					OxDDCBnn83,
					OxDDCBnn84,
					OxDDCBnn85,
					OxDDCBnn86,
					OxDDCBnn87,
					OxDDCBnn88,
					OxDDCBnn89,
					OxDDCBnn8A,
					OxDDCBnn8B,
					OxDDCBnn8C,
					OxDDCBnn8D,
					OxDDCBnn8E,
					OxDDCBnn8F,
					OxDDCBnn90,
					OxDDCBnn91,
					OxDDCBnn92,
					OxDDCBnn93,
					OxDDCBnn94,
					OxDDCBnn95,
					OxDDCBnn96,
					OxDDCBnn97,
					OxDDCBnn98,
					OxDDCBnn99,
					OxDDCBnn9A,
					OxDDCBnn9B,
					OxDDCBnn9C,
					OxDDCBnn9D,
					OxDDCBnn9E,
					OxDDCBnn9F,
					OxDDCBnnA0,
					OxDDCBnnA1,
					OxDDCBnnA2,
					OxDDCBnnA3,
					OxDDCBnnA4,
					OxDDCBnnA5,
					OxDDCBnnA6,
					OxDDCBnnA7,
					OxDDCBnnA8,
					OxDDCBnnA9,
					OxDDCBnnAA,
					OxDDCBnnAB,
					OxDDCBnnAC,
					OxDDCBnnAD,
					OxDDCBnnAE,
					OxDDCBnnAF,
					OxDDCBnnB0,
					OxDDCBnnB1,
					OxDDCBnnB2,
					OxDDCBnnB3,
					OxDDCBnnB4,
					OxDDCBnnB5,
					OxDDCBnnB6,
					OxDDCBnnB7,
					OxDDCBnnB8,
					OxDDCBnnB9,
					OxDDCBnnBA,
					OxDDCBnnBB,
					OxDDCBnnBC,
					OxDDCBnnBD,
					OxDDCBnnBE,
					OxDDCBnnBF,
					OxDDCBnnC0,
					OxDDCBnnC1,
					OxDDCBnnC2,
					OxDDCBnnC3,
					OxDDCBnnC4,
					OxDDCBnnC5,
					OxDDCBnnC6,
					OxDDCBnnC7,
					OxDDCBnnC8,
					OxDDCBnnC9,
					OxDDCBnnCA,
					OxDDCBnnCB,
					OxDDCBnnCC,
					OxDDCBnnCD,
					OxDDCBnnCE,
					OxDDCBnnCF,
					OxDDCBnnD0,
					OxDDCBnnD1,
					OxDDCBnnD2,
					OxDDCBnnD3,
					OxDDCBnnD4,
					OxDDCBnnD5,
					OxDDCBnnD6,
					OxDDCBnnD7,
					OxDDCBnnD8,
					OxDDCBnnD9,
					OxDDCBnnDA,
					OxDDCBnnDB,
					OxDDCBnnDC,
					OxDDCBnnDD,
					OxDDCBnnDE,
					OxDDCBnnDF,
					OxDDCBnnE0,
					OxDDCBnnE1,
					OxDDCBnnE2,
					OxDDCBnnE3,
					OxDDCBnnE4,
					OxDDCBnnE5,
					OxDDCBnnE6,
					OxDDCBnnE7,
					OxDDCBnnE8,
					OxDDCBnnE9,
					OxDDCBnnEA,
					OxDDCBnnEB,
					OxDDCBnnEC,
					OxDDCBnnED,
					OxDDCBnnEE,
					OxDDCBnnEF,
					OxDDCBnnF0,
					OxDDCBnnF1,
					OxDDCBnnF2,
					OxDDCBnnF3,
					OxDDCBnnF4,
					OxDDCBnnF5,
					OxDDCBnnF6,
					OxDDCBnnF7,
					OxDDCBnnF8,
					OxDDCBnnF9,
					OxDDCBnnFA,
					OxDDCBnnFB,
					OxDDCBnnFC,
					OxDDCBnnFD,
					OxDDCBnnFE,
					OxDDCBnnFF,
					OxDDE1,
					OxDDE3,
					OxDDE5,
					OxDDE9,
					OxDDF9,
					OxDE,
					OxDF,
					OxE0,
					OxE1,
					OxE2,
					OxE3,
					OxE4,
					OxE5,
					OxE6,
					OxE7,
					OxE8,
					OxE9,
					OxEA,
					OxEB,
					OxEC,
					OxED40,
					OxED41,
					OxED42,
					OxED43,
					OxED44,
					OxED45,
					OxED46,
					OxED47,
					OxED48,
					OxED49,
					OxED4A,
					OxED4B,
					OxED4C,
					OxED4D,
					OxED4E,
					OxED4F,
					OxED50,
					OxED51,
					OxED52,
					OxED53,
					OxED54,
					OxED55,
					OxED56,
					OxED57,
					OxED58,
					OxED59,
					OxED5A,
					OxED5B,
					OxED5C,
					OxED5D,
					OxED5E,
					OxED5F,
					OxED60,
					OxED61,
					OxED62,
					OxED63,
					OxED64,
					OxED65,
					OxED66,
					OxED67,
					OxED68,
					OxED69,
					OxED6A,
					OxED6B,
					OxED6C,
					OxED6D,
					OxED6E,
					OxED6F,
					OxED70,
					OxED71,
					OxED72,
					OxED73,
					OxED74,
					OxED75,
					OxED76,
					OxED78,
					OxED79,
					OxED7A,
					OxED7B,
					OxED7C,
					OxED7D,
					OxED7E,
					OxEDA0,
					OxEDA1,
					OxEDA2,
					OxEDA3,
					OxEDA8,
					OxEDA9,
					OxEDAA,
					OxEDAB,
					OxEDB0,
					OxEDB1,
					OxEDB2,
					OxEDB3,
					OxEDB8,
					OxEDB9,
					OxEDBA,
					OxEDBB,
					OxEE,
					OxEF,
					OxF0,
					OxF1,
					OxF2,
					OxF3,
					OxF4,
					OxF5,
					OxF6,
					OxF7,
					OxF8,
					OxF9,
					OxFA,
					OxFB,
					OxFC,
					OxFD09,
					OxFD19,
					OxFD21,
					OxFD22,
					OxFD23,
					OxFD24,
					OxFD25,
					OxFD26,
					OxFD29,
					OxFD2A,
					OxFD2B,
					OxFD2C,
					OxFD2D,
					OxFD2E,
					OxFD34,
					OxFD35,
					OxFD36,
					OxFD39,
					OxFD44,
					OxFD45,
					OxFD46,
					OxFD4C,
					OxFD4D,
					OxFD4E,
					OxFD54,
					OxFD55,
					OxFD56,
					OxFD5C,
					OxFD5D,
					OxFD5E,
					OxFD60,
					OxFD61,
					OxFD62,
					OxFD63,
					OxFD64,
					OxFD65,
					OxFD66,
					OxFD67,
					OxFD68,
					OxFD69,
					OxFD6A,
					OxFD6B,
					OxFD6C,
					OxFD6D,
					OxFD6E,
					OxFD6F,
					OxFD70,
					OxFD71,
					OxFD72,
					OxFD73,
					OxFD74,
					OxFD75,
					OxFD77,
					OxFD7C,
					OxFD7D,
					OxFD7E,
					OxFD84,
					OxFD85,
					OxFD86,
					OxFD8C,
					OxFD8D,
					OxFD8E,
					OxFD94,
					OxFD95,
					OxFD96,
					OxFD9C,
					OxFD9D,
					OxFD9E,
					OxFDA4,
					OxFDA5,
					OxFDA6,
					OxFDAC,
					OxFDAD,
					OxFDAE,
					OxFDB4,
					OxFDB5,
					OxFDB6,
					OxFDBC,
					OxFDBD,
					OxFDBE,
					OxFDCBnn00,
					OxFDCBnn01,
					OxFDCBnn02,
					OxFDCBnn03,
					OxFDCBnn04,
					OxFDCBnn05,
					OxFDCBnn06,
					OxFDCBnn07,
					OxFDCBnn08,
					OxFDCBnn09,
					OxFDCBnn0A,
					OxFDCBnn0B,
					OxFDCBnn0C,
					OxFDCBnn0D,
					OxFDCBnn0E,
					OxFDCBnn0F,
					OxFDCBnn10,
					OxFDCBnn11,
					OxFDCBnn12,
					OxFDCBnn13,
					OxFDCBnn14,
					OxFDCBnn15,
					OxFDCBnn16,
					OxFDCBnn17,
					OxFDCBnn18,
					OxFDCBnn19,
					OxFDCBnn1A,
					OxFDCBnn1B,
					OxFDCBnn1C,
					OxFDCBnn1D,
					OxFDCBnn1E,
					OxFDCBnn1F,
					OxFDCBnn20,
					OxFDCBnn21,
					OxFDCBnn22,
					OxFDCBnn23,
					OxFDCBnn24,
					OxFDCBnn25,
					OxFDCBnn26,
					OxFDCBnn27,
					OxFDCBnn28,
					OxFDCBnn29,
					OxFDCBnn2A,
					OxFDCBnn2B,
					OxFDCBnn2C,
					OxFDCBnn2D,
					OxFDCBnn2E,
					OxFDCBnn2F,
					OxFDCBnn30,
					OxFDCBnn31,
					OxFDCBnn32,
					OxFDCBnn33,
					OxFDCBnn34,
					OxFDCBnn35,
					OxFDCBnn36,
					OxFDCBnn37,
					OxFDCBnn38,
					OxFDCBnn39,
					OxFDCBnn3A,
					OxFDCBnn3B,
					OxFDCBnn3C,
					OxFDCBnn3D,
					OxFDCBnn3E,
					OxFDCBnn3F,
					OxFDCBnn40,
					OxFDCBnn41,
					OxFDCBnn42,
					OxFDCBnn43,
					OxFDCBnn44,
					OxFDCBnn45,
					OxFDCBnn46,
					OxFDCBnn47,
					OxFDCBnn48,
					OxFDCBnn49,
					OxFDCBnn4A,
					OxFDCBnn4B,
					OxFDCBnn4C,
					OxFDCBnn4D,
					OxFDCBnn4E,
					OxFDCBnn4F,
					OxFDCBnn50,
					OxFDCBnn51,
					OxFDCBnn52,
					OxFDCBnn53,
					OxFDCBnn54,
					OxFDCBnn55,
					OxFDCBnn56,
					OxFDCBnn57,
					OxFDCBnn58,
					OxFDCBnn59,
					OxFDCBnn5A,
					OxFDCBnn5B,
					OxFDCBnn5C,
					OxFDCBnn5D,
					OxFDCBnn5E,
					OxFDCBnn5F,
					OxFDCBnn60,
					OxFDCBnn61,
					OxFDCBnn62,
					OxFDCBnn63,
					OxFDCBnn64,
					OxFDCBnn65,
					OxFDCBnn66,
					OxFDCBnn67,
					OxFDCBnn68,
					OxFDCBnn69,
					OxFDCBnn6A,
					OxFDCBnn6B,
					OxFDCBnn6C,
					OxFDCBnn6D,
					OxFDCBnn6E,
					OxFDCBnn6F,
					OxFDCBnn70,
					OxFDCBnn71,
					OxFDCBnn72,
					OxFDCBnn73,
					OxFDCBnn74,
					OxFDCBnn75,
					OxFDCBnn76,
					OxFDCBnn77,
					OxFDCBnn78,
					OxFDCBnn79,
					OxFDCBnn7A,
					OxFDCBnn7B,
					OxFDCBnn7C,
					OxFDCBnn7D,
					OxFDCBnn7E,
					OxFDCBnn7F,
					OxFDCBnn80,
					OxFDCBnn81,
					OxFDCBnn82,
					OxFDCBnn83,
					OxFDCBnn84,
					OxFDCBnn85,
					OxFDCBnn86,
					OxFDCBnn87,
					OxFDCBnn88,
					OxFDCBnn89,
					OxFDCBnn8A,
					OxFDCBnn8B,
					OxFDCBnn8C,
					OxFDCBnn8D,
					OxFDCBnn8E,
					OxFDCBnn8F,
					OxFDCBnn90,
					OxFDCBnn91,
					OxFDCBnn92,
					OxFDCBnn93,
					OxFDCBnn94,
					OxFDCBnn95,
					OxFDCBnn96,
					OxFDCBnn97,
					OxFDCBnn98,
					OxFDCBnn99,
					OxFDCBnn9A,
					OxFDCBnn9B,
					OxFDCBnn9C,
					OxFDCBnn9D,
					OxFDCBnn9E,
					OxFDCBnn9F,
					OxFDCBnnA0,
					OxFDCBnnA1,
					OxFDCBnnA2,
					OxFDCBnnA3,
					OxFDCBnnA4,
					OxFDCBnnA5,
					OxFDCBnnA6,
					OxFDCBnnA7,
					OxFDCBnnA8,
					OxFDCBnnA9,
					OxFDCBnnAA,
					OxFDCBnnAB,
					OxFDCBnnAC,
					OxFDCBnnAD,
					OxFDCBnnAE,
					OxFDCBnnAF,
					OxFDCBnnB0,
					OxFDCBnnB1,
					OxFDCBnnB2,
					OxFDCBnnB3,
					OxFDCBnnB4,
					OxFDCBnnB5,
					OxFDCBnnB6,
					OxFDCBnnB7,
					OxFDCBnnB8,
					OxFDCBnnB9,
					OxFDCBnnBA,
					OxFDCBnnBB,
					OxFDCBnnBC,
					OxFDCBnnBD,
					OxFDCBnnBE,
					OxFDCBnnBF,
					OxFDCBnnC0,
					OxFDCBnnC1,
					OxFDCBnnC2,
					OxFDCBnnC3,
					OxFDCBnnC4,
					OxFDCBnnC5,
					OxFDCBnnC6,
					OxFDCBnnC7,
					OxFDCBnnC8,
					OxFDCBnnC9,
					OxFDCBnnCA,
					OxFDCBnnCB,
					OxFDCBnnCC,
					OxFDCBnnCD,
					OxFDCBnnCE,
					OxFDCBnnCF,
					OxFDCBnnD0,
					OxFDCBnnD1,
					OxFDCBnnD2,
					OxFDCBnnD3,
					OxFDCBnnD4,
					OxFDCBnnD5,
					OxFDCBnnD6,
					OxFDCBnnD7,
					OxFDCBnnD8,
					OxFDCBnnD9,
					OxFDCBnnDA,
					OxFDCBnnDB,
					OxFDCBnnDC,
					OxFDCBnnDD,
					OxFDCBnnDE,
					OxFDCBnnDF,
					OxFDCBnnE0,
					OxFDCBnnE1,
					OxFDCBnnE2,
					OxFDCBnnE3,
					OxFDCBnnE4,
					OxFDCBnnE5,
					OxFDCBnnE6,
					OxFDCBnnE7,
					OxFDCBnnE8,
					OxFDCBnnE9,
					OxFDCBnnEA,
					OxFDCBnnEB,
					OxFDCBnnEC,
					OxFDCBnnED,
					OxFDCBnnEE,
					OxFDCBnnEF,
					OxFDCBnnF0,
					OxFDCBnnF1,
					OxFDCBnnF2,
					OxFDCBnnF3,
					OxFDCBnnF4,
					OxFDCBnnF5,
					OxFDCBnnF6,
					OxFDCBnnF7,
					OxFDCBnnF8,
					OxFDCBnnF9,
					OxFDCBnnFA,
					OxFDCBnnFB,
					OxFDCBnnFC,
					OxFDCBnnFD,
					OxFDCBnnFE,
					OxFDCBnnFF,
					OxFDE1,
					OxFDE3,
					OxFDE5,
					OxFDE9,
					OxFDF9,
					OxFE,
					OxFF,
					OxNOTIMPLEMENTED,
				};

				class CPUInst;

				class Opcode {
					private:
						uint8_t _byte1;
						uint8_t _byte2;
						uint8_t _byte4;
						uint16_t _advance;

					public:
						Opcode();
						~Opcode();

						inline void SetByte1(uint8_t byte1) { this->_byte1 = byte1; }
						inline void SetByte2(uint8_t byte2) { this->_byte2 = byte2; }
						inline void SetByte4(uint8_t byte4) { this->_byte4 = byte4; }

						int GetEnum();
						inline uint16_t GetAdvance() const { return this->_advance; }

						void ShowLogOpcode(CPUInst * cpu, uint16_t enumOpcode);
				};
			}
		}
	}
}

#endif
